<!DOCTYPE html>
<html class="ui-page-login">

	<head>
		<meta charset="utf-8">
		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
		<title></title>
		<link href="css/mui.min.css" rel="stylesheet" />
		<link href="css/style.css" rel="stylesheet" />
		<style>
			.area {
				margin: 20px auto 0px auto;
			}
			
			.mui-input-group {
				margin-top: 10px;
			}
			
			.mui-input-group:first-child {
				margin-top: 20px;
			}
			
			.mui-input-group label {
				width: 22%;
			}
			
			.mui-input-row label~input,
			.mui-input-row label~select,
			.mui-input-row label~textarea {
				width: 78%;
			}
			
			.mui-checkbox input[type=checkbox],
			.mui-radio input[type=radio] {
				top: 6px;
			}
			
			.mui-content-padded {
				margin-top: 25px;
			}
			
			.mui-btn {
				padding: 10px;
			}
			
			.link-area {
				display: block;
				margin-top: 25px;
				text-align: center;
			}
			
			.spliter {
				color: #bbb;
				padding: 0px 8px;
			}
			
			.oauth-area {
				position: absolute;
				bottom: 20px;
				left: 0px;
				text-align: center;
				width: 100%;
				padding: 0px;
				margin: 0px;
			}
			
			.oauth-area .oauth-btn {
				display: inline-block;
				width: 50px;
				height: 50px;
				background-size: 30px 30px;
				background-position: center center;
				background-repeat: no-repeat;
				margin: 0px 20px;
				/*-webkit-filter: grayscale(100%); */
				border: solid 1px #ddd;
				border-radius: 25px;
			}
			
			.oauth-area .oauth-btn:active {
				border: solid 1px #aaa;
			}
			
			.oauth-area .oauth-btn.disabled {
				background-color: #ddd;
			}
		</style>

	</head>

	<body>
		<header class="mui-bar mui-bar-nav" id="header">
			<button type="button" class="mui-btn mui-btn-primary" id="openBtn">打开</button>
			<h1 class="mui-title" id="title">登录</h1>
		</header>
		<div class="mui-content" id="content">
			<form id='login-form' class="mui-input-group">
				<div class="mui-input-row">
					<label>账号</label>
					<input id='account' type="text" class="mui-input-clear mui-input" placeholder="请输入账号">
				</div>
				<div class="mui-input-row">
					<label>密码</label>
					<input id='password' type="password" class="mui-input-clear mui-input" placeholder="请输入密码">
				</div>
			</form>
			<form class="mui-input-group">
				<ul class="mui-table-view mui-table-view-chevron">
					<li class="mui-table-view-cell">
						自动登录
						<div id="autoLogin" class="mui-switch">
							<div class="mui-switch-handle"></div>
						</div>
					</li>
				</ul>
			</form>
			<div class="mui-content-padded">
				<button id='login' class="mui-btn mui-btn-block mui-btn-primary">登录</button>
				<div class="link-area"><a id='reg'>注册账号</a> <span class="spliter">|</span> <a id='forgetPassword'>忘记密码</a>
				</div>
			</div>
			<div class="mui-content-padded oauth-area">

			</div>
			<ul class="mui-table-view">
				<li class="mui-table-view-cell" id="cache" onclick="onPlusReady();"></li>
				<li class="mui-table-view-cell" id="daytime" onclick="daytimeMode();">日间模式</li>
				<li class="mui-table-view-cell" id="night" onclick="nightMode();">夜间模式</li>
			</ul>
			<div id="message"></div>
		</div>
		<script src="js/mui.min.js"></script>
		<script src="js/mui.enterfocus.js"></script>
		<script src="js/app.js"></script>
		<script type="text/javascript" src="js/immersed.js" ></script>
		<script>
			//添加newId自定义事件监听
			window.addEventListener('diy',function(event){
				//获得事件参数
				var id = event.detail.id;
				alert(id);
			});
			
			//打开子页面
			mui.plusReady(function(){
				document.getElementById("openBtn").addEventListener("tap", function(){
					mui.openWindow({
						url: 'window.html',
					    id: 'window',
					    extras:{
					    	name: 'window'//自定义扩展参数，可以用来处理页面间传值
					    },
					    createNew: false,//是否重复创建同样id的webview，默认为false:不重复创建，直接显示
					    show:{
					      autoShow: true//页面loaded事件发生后自动显示，默认为true
					    }
					});
				});
			});
			
			//沉浸式状态栏
			(function(w){
				document.addEventListener('plusready',function(){
					getNetwork();
					console.log("Immersed-UserAgent: "+navigator.userAgent);
				},false);
				
				var immersed = 0;
				var ms=(/Html5Plus\/.+\s\(.*(Immersed\/(\d+\.?\d*).*)\)/gi).exec(navigator.userAgent);
				if(ms&&ms.length>=3){
					immersed=parseFloat(ms[2]);
				}
				w.immersed=immersed;
				//alert(immersed);//测试机状态栏高度为25
				if(!immersed){
					return;
				}
				var t=document.getElementById('header');
				var tt = document.getElementById("title");
				
				t&&(t.style.paddingTop=immersed+'px',t.style.height='69px',t.style.background='-webkit-linear-gradient(top,rgba(215,75,40,1),rgba(215,75,40,0.8))',t.style.color='#FFF');
				tt.style.color='#fff';
				t=document.getElementById('content');
				t&&(t.style.paddingTop='69px');//44+25
			})(window);
			
			//判断网络状况
			function getNetwork(){
				var types = {}; 
				types[plus.networkinfo.CONNECTION_UNKNOW] = "Unknown connection"; 
				types[plus.networkinfo.CONNECTION_NONE] = "None connection"; 
				types[plus.networkinfo.CONNECTION_ETHERNET] = "Ethernet connection"; 
				types[plus.networkinfo.CONNECTION_WIFI] = "WiFi connection"; 
				types[plus.networkinfo.CONNECTION_CELL2G] = "Cellular 2G connection"; 
				types[plus.networkinfo.CONNECTION_CELL3G] = "Cellular 3G connection"; 
				types[plus.networkinfo.CONNECTION_CELL4G] = "Cellular 4G connection"; 
			
				alert( "Network: " + types[plus.networkinfo.getCurrentType()] );
			}
			
/*			//推送
			document.addEventListener( "plusready", function(){
			    message = document.getElementById("message");
			    // 获取客户端标识信息
				var info = plus.push.getClientInfo();
				alert( JSON.stringify( info ) );
			    // 监听点击消息事件
			    plus.push.addEventListener( "click", function( msg ) {
			        // 判断是从本地创建还是离线推送的消息
			        switch( msg.payload ) {
			            case "LocalMSG":
			                outSet( "点击本地创建消息启动：" );
			            break;
			            default:
			                outSet( "点击离线推送消息启动：");
			            break;
			        }
			        // 提示点击的内容
			        plus.ui.alert( msg.content );
			        // 处理其它数据
			        logoutPushMsg( msg );
			    }, false );
			    // 监听在线消息事件
			    plus.push.addEventListener( "receive", function( msg ) {
			        if ( msg.aps ) {  // Apple APNS message
			            outSet( "接收到在线APNS消息：" );
			        } else {
			            outSet( "接收到在线透传消息：" );
			        }
			        logoutPushMsg( msg );
			    }, false );
			}, false );*/
			
			//清除缓存
			// 扩展API加载完毕后调用onPlusReady回调函数 
/*			document.addEventListener( "plusready", function(){
				plus.cache.calculate( function ( size ) {
					document.getElementById("cache").innerHTML = "缓存：" + size/1024/1024 + "M";
//					alert( "缓存为 " + size/1024/1024 + " M!" );
				});
			}, false );
			var r = null; */
			// 扩展API加载完毕，现在可以正常调用扩展API 
			function onPlusReady() { 
				plus.cache.clear( function () {
					alert( "清除缓存成功!" );	
						plus.cache.calculate( function ( size ) {
						document.getElementById("cache").innerHTML = size/1024/1024 + "M";
//						alert( "缓存为 " + size/1024/1024 + " M!" );
					});
				});
			}
			
			//日夜间模式切换
			function nightMode() { 
				var head = document.getElementsByTagName('head')[0];
				var link = document.createElement('link');
				
	            link.id = "night_style";
	            link.rel = 'stylesheet';
	            link.href = "css/night-mode.css";
	            head.appendChild(link);
			}
			
			function daytimeMode() { 
				var night = document.getElementById("night_style");
				night.parentNode.removeChild(night);
			}
			
			(function($, doc) {
				$.init({
					statusBarBackground: '#f7f7f7'
				});
				$.plusReady(function() {
					plus.screen.lockOrientation("portrait-primary");
					var settings = app.getSettings();
					var state = app.getState();
					var mainPage = $.preload({
						"id": 'main',
						"url": 'main.html'
					});
					var toMain = function() {
						$.fire(mainPage, 'show', null);
						setTimeout(function() {
							$.openWindow({
								id: 'main',
								show: {
									aniShow: 'pop-in'
								},
								waiting: {
									autoShow: false
								}
							});
						}, 0);
					};
					//检查 "登录状态/锁屏状态" 开始
					if (settings.autoLogin && state.token && settings.gestures) {
						$.openWindow({
							url: 'unlock.html',
							id: 'unlock',
							show: {
								aniShow: 'pop-in'
							},
							waiting: {
								autoShow: false
							}
						});
					} else if (settings.autoLogin && state.token) {
						toMain();
					} else {
						app.setState(null);
						//第三方登录
						var authBtns = ['qihoo', 'weixin', 'sinaweibo', 'qq']; //配置业务支持的第三方登录
						var auths = {};
						var oauthArea = doc.querySelector('.oauth-area');
						plus.oauth.getServices(function(services) {
							for (var i in services) {
								var service = services[i];
								auths[service.id] = service;
								if (~authBtns.indexOf(service.id)) {
									var isInstalled = app.isInstalled(service.id);
									var btn = document.createElement('div');
									//如果微信未安装，则为不启用状态
									btn.setAttribute('class', 'oauth-btn' + (!isInstalled && service.id === 'weixin' ? (' disabled') : ''));
									btn.authId = service.id;
									btn.style.backgroundImage = 'url("images/' + service.id + '.png")'
									oauthArea.appendChild(btn);
								}
							}
							$(oauthArea).on('tap', '.oauth-btn', function() {
								if (this.classList.contains('disabled')) {
									plus.nativeUI.toast('您尚未安装微信客户端');
									return;
								}
								var auth = auths[this.authId];
								var waiting = plus.nativeUI.showWaiting();
								auth.login(function() {
									waiting.close();
									plus.nativeUI.toast("登录认证成功");
									auth.getUserInfo(function() {
										alert( "获取用户信息成功："+JSON.stringify(auth.userInfo) );
										plus.nativeUI.toast("获取用户信息成功");
										var name = auth.userInfo.nickname || auth.userInfo.name;
										app.createState(name, function() {
											toMain();
										});
									}, function(e) {
										plus.nativeUI.toast("获取用户信息失败：" + e.message);
									});
								}, function(e) {
									waiting.close();
									plus.nativeUI.toast("登录认证失败：" + e.message);
								});
							});
						}, function(e) {
							oauthArea.style.display = 'none';
							plus.nativeUI.toast("获取登录认证失败：" + e.message);
						});
					}
					// close splash
					setTimeout(function() {
						//关闭 splash
						plus.navigator.closeSplashscreen();
					}, 600);
					//检查 "登录状态/锁屏状态" 结束
					var loginButton = doc.getElementById('login');
					var accountBox = doc.getElementById('account');
					var passwordBox = doc.getElementById('password');
					var autoLoginButton = doc.getElementById("autoLogin");
					var regButton = doc.getElementById('reg');
					var forgetButton = doc.getElementById('forgetPassword');
					loginButton.addEventListener('tap', function(event) {
						var loginInfo = {
							account: accountBox.value,
							password: passwordBox.value
						};
						app.login(loginInfo, function(err) {
							if (err) {
								plus.nativeUI.toast(err);
								return;
							}
							toMain();
						});
					});
					$.enterfocus('#login-form input', function() {
						$.trigger(loginButton, 'tap');
					});
					autoLoginButton.classList[settings.autoLogin ? 'add' : 'remove']('mui-active')
					autoLoginButton.addEventListener('toggle', function(event) {
						setTimeout(function() {
							var isActive = event.detail.isActive;
							settings.autoLogin = isActive;
							app.setSettings(settings);
						}, 50);
					}, false);
					regButton.addEventListener('tap', function(event) {
						$.openWindow({
							url: 'reg.html',
							id: 'reg',
							preload: true,
							show: {
								aniShow: 'pop-in'
							},
							styles: {
								popGesture: 'hide'
							},
							waiting: {
								autoShow: false
							}
						});
					}, false);
					forgetButton.addEventListener('tap', function(event) {
						$.openWindow({
							url: 'forget_password.html',
							id: 'forget_password',
							preload: true,
							show: {
								aniShow: 'pop-in'
							},
							styles: {
								popGesture: 'hide'
							},
							waiting: {
								autoShow: false
							}
						});
					}, false);
					//
					window.addEventListener('resize', function() {
						oauthArea.style.display = document.body.clientHeight > 400 ? 'block' : 'none';
					}, false);
					//
					var backButtonPress = 0;
					$.back = function(event) {
						backButtonPress++;
						if (backButtonPress > 1) {
							plus.runtime.quit();
						} else {
							plus.nativeUI.toast('再按一次退出应用');
						}
						setTimeout(function() {
							backButtonPress = 0;
						}, 1000);
						return false;
					};
				});
			}(mui, document));
		</script>
	</body>

</html>